import datetime
from user_dao import UserDao
# 分级别导包
from flask import Flask
from flask import request,session, make_response
from flask import redirect, render_template

# 创建蓝图时，第一个参数：name可以任意命名
# 第二个参数：必须使用 __name__表示导包的名称
app = Flask(__name__)

@app.route('/login',methods=['GET','POST'])
def loginUser():
    if request.method == 'POST':
        # 读取登录用户信息
        name = request.form.get('name')
        password = request.form.get('password')
        if not all((name, password)):
            message = "用户名或口令不能为空"
            # 重定向到主页

        else:
            # 将数据写入数据库
            dao = UserDao()
            user = dao.login(name, password)  # 如果存在此用户，则返回用户信息
            if not user:
                message = "查无%s用户，请确认用户名或口令正确" % name
            else:
                # 将用户信息存储到session
                session['login_user'] = user
                # 重定向到主页
                return redirect('/index')

    # locals()将当前函数内部的变量生成字典对象。变量名即是字典的key,变量值为key对应的value
    context = locals()
    return render_template('user/login.html',**context)
@app.login('/logout')
def logout():
    # 从session中删除数据
    del session['login_user']
    return redirect('/login')

@app.route('/find',methods=['GET','POST'])
def find():
    # 验证当前用户是否登录成功
    if not session.get('login_user'):
        return "当前没有登录，请先<a href='/login'>登录</a>"

    # 从session读取当前用户登录的用户名
    login_name = session.get('login_user').get('name')
    return login_name

app.run(host='0.0.0.0',
        port=5000,
        debug=True,
        threaded=True,
        processes=1
        )